package com.bit.springmvc;

import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

@RestController
/**
 * 仅支持GET方法
 */
@RequestMapping(value = "/hello")
public class HelloController {
    //@RequestMapping(value = "/hello1",method = RequestMethod.GET)
    //也可以用下面这种注解
    @GetMapping("/hello1")
    public String hello1(){
        return "hello springmvc111";
    }

    /**
     * 可以支持GET,POST方法
     * @return
     */
    @RequestMapping(value = "/hello2",method = {RequestMethod.GET,RequestMethod.POST})
    public String hello2(){
        return "hello springmvc222";
    }

    /**
     * 传的参数是一个对象(后续修改只需要对person里面的内容进行修改，不用来修改参数)
     * @param person
     * @return
     */
    @RequestMapping("/hello3")
    public String hello3(Person person){
              return "接收到的参数："+person;
    }

    /**
     * 传的参数是一个数组
     * @param array
     * @return
     */
    @RequestMapping("/hello4")
    public String hello4(String[] array){
        return  "接收到的参数："+ Arrays.toString(array);
    }

    /**
     * 传的是一个list对象（集合）
     * @param list
     * @return
     */
    @RequestMapping("/hello5")
    public String hello5(@RequestParam List<String> list){
        return "接收到的参数是："+list;
    }
    @RequestMapping("/hello6")
    public String hello6(MultipartFile file) throws IOException {
        String name = file.getName();
        String originalFilename = file.getOriginalFilename();
       System.out.println("originalFilename"+originalFilename);
        String contentType = file.getContentType();
        System.out.println("contentType"+contentType);
        //上传文件
        file.transferTo(new File("D:/Cache/"+originalFilename));
        return "接受到文件"+name;
    }
}
